package cn.iocoder.yudao.module.api.member.vip;

import cn.iocoder.yudao.module.api.member.vip.enums.VipTypeEnum;
import cn.iocoder.yudao.module.api.member.vip.vo.VipUserSummaryVO;
import cn.iocoder.yudao.module.api.member.vip.vo.VipUserVO;
import jakarta.annotation.Nullable;

/**
 * 会员用户的 API 接口
 *
 * @author 山野羡民
 */
public interface VipUserApi {

    /**
     * 获得会员信息
     *
     * @param userId 用户编号
     * @return 会员信息
     */
    VipUserVO getVipUser(Long userId);

    /**
     * 校验会员是否有效
     *
     * @param userId 用户编号
     * @param vipType 会员类型
     */
    boolean validVip(Long userId, @Nullable VipTypeEnum vipType);

    /**
     * 获得会员汇总
     *
     * @param shopId 店铺编号
     * @return 会员汇总信息
     */
    VipUserSummaryVO getVipSummaryByShopId(Long shopId);

}
